package com.ict.web.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ict.web.controller.file.domain.YzqFile;
import com.ict.web.domain.ProfessionalQualification;
import com.ict.web.domain.TechnicalTitle;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

@Data
public class ExpertInformationSheetDetailVo {
    @ApiModelProperty(value = "专家id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @TableId(type = IdType.ASSIGN_ID)
    private Long expertId;

    @ApiModelProperty(value = "用户id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long userId;

    @ApiModelProperty(value = "专家姓名")
    private String expertName;

    @ApiModelProperty(value = "性别{0：男 1：女}")
    private String sex;

    @ApiModelProperty(value = "政治面貌")
    private String politicalOutlook;

    @ApiModelProperty(value = "身份证号码")
    private String idNumber;

    @ApiModelProperty(value = "手机号码")
    private String phoneNumber;

    @ApiModelProperty(value = "电子邮箱")
    private String email;

    @ApiModelProperty(value = "联系地址")
    private String contactAddress;

    @ApiModelProperty(value = "毕业学院")
    private String graduateCollege;

    @ApiModelProperty(value = "专业")
    private String major;

    @ApiModelProperty(value = "学历")
    private String education;

    @ApiModelProperty(value = "毕业时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private LocalDateTime graduationTime;

    @ApiModelProperty(value = "工作单位")
    private String workUnit;

    @ApiModelProperty(value = "职务")
    private String post;

    @ApiModelProperty(value = "擅长领域")
    private String areasOfExpertise;

    @ApiModelProperty(value = "工作年限")
    private String workingYears;

    @ApiModelProperty(value = "年龄")
    private Integer age;

    @ApiModelProperty(value = "删除状态（0：正常 1：删除）")
    private String delFlag;

    //以下都是文件类型
    @ApiModelProperty(value = "最高学历证书")
    private String haCertificateFile;

    @ApiModelProperty(value = "最高学历证书文件")
    private YzqFile haCertificateFileDoc;

    @ApiModelProperty(value = "工作单位意见")
    private String workUnitOpinionsFile;

    @ApiModelProperty(value = "工作单位意见文件")
    private YzqFile workUnitOpinionsFileDoc;

    @ApiModelProperty(value = "身份证")
    private String idCardFile;

    @ApiModelProperty(value = "身份证文件")
    private YzqFile idCardFileDoc;

    @ApiModelProperty(value = "个人照片")
    private String personalPhotosFile;

    @ApiModelProperty(value = "个人照片文件")
    private YzqFile personalPhotosFileDoc;

    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    @ApiModelProperty(value = "修改时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    @ApiModelProperty(value = "技术职称")
    private List<TechnicalTitle> technicalTitles;

    @ApiModelProperty(value = "职业资格")
    private List<ProfessionalQualification> qualifications;

    @ApiModelProperty(value = "技术职称名字")
    private String technicalTitlesName;

    @ApiModelProperty(value = "职业资格名字")
    private String qualificationsName;

    @ApiModelProperty(value = "专家评审任务信息")
    private List<ExpertMessageVo> expertMessageVoList;

    @ApiModelProperty(value = "专家平均分")
    private BigDecimal averageScore;

}
